home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr49 / vscreen1.zip / VSCREEN.H < prev    next >
C/C++ Source or Header  |  1993-05-06  |  9KB  |  261 lines

  1. /*
  2.       Prog.Name : VSCREEN.H
  3.       Copyright : (c) 1991 by SUPPORT-EDV-Beratung GbR
  4.                               Postfach 44 13
  5.                               6100 Darmstadt 1
  6.       
  7.       Note : Use for VSCREEN Tool 2.0a or greater
  8.       -----
  9.  
  10. */
  11.  
  12. /* -------------------------------------------------------- */
  13. /*                                           */
  14. /* Following EXTERNALS must be defined in MAIN - Programm   */
  15. /*                                           */
  16. /* extern int ScrCnt;      Index Screen Counter             */
  17. /* extern int T_Color;     Textcolor Foreground             */
  18. /* extern int B_Color;     Textcolor Background             */
  19. /* extern Byte Density;    High Video = 1, Low Video = 0    */
  20. /* extern unsigned ScrOfs; Screen Offset                    */
  21. /* extern unsigned ScrSeg; Screen Segment                   */
  22. /* extern char Date_[9];   Field for Date TT.MM.JJ          */
  23. /* extern char Time_[6];   Field for Time SS:MM             */
  24. /* extern Byte mono;       TRUE Hercules or compatible Card */
  25. /* extern Byte fk_flag;    TRUE if Functionkey was pressed  */
  26. /* extern int MaxX_Text;   Max. Columnes                    */
  27. /* extern int MaxY_Text;   Max. Rows                        */
  28. /* extern int Bordertyp;   Type of Border for Windows       */
  29. /* extern Byte mouse;      TRUE if Mouse detected           */
  30. /*                                                          */
  31. /* struct ms_info_block extern ms_info; Mouse-Info          */
  32. /*                                                          */
  33. /* -------------------------------------------------------- */
  34.  
  35. #define SHOW     -1
  36. #define TRUE      1
  37. #define FALSE     0
  38.  
  39. /* Color Definition */
  40.  
  41. #define BLACK     0
  42. #define BLUE      1
  43. #define GREEN     2
  44. #define CYAN      3
  45. #define RED       4
  46. #define PINK      5
  47. #define YELLOW    6
  48. #define WHITE     7
  49. #define GREY      8
  50.  
  51. /* High Density Colors */
  52.  
  53. #define B_BLUE    9
  54. #define B_GREEN  10
  55. #define B_CYAN   11
  56. #define B_RED    12
  57. #define B_PINK   13
  58. #define B_YELLOW 14
  59. #define B_WHITE  15
  60.  
  61. /* Keyboard */
  62.  
  63. #define LEFTARROW    0x4b
  64. #define RIGHTARROW   0x4d
  65. #define UPARROW      0x48
  66. #define DOWNARROW    0x50
  67. #define PAGEDOWN     0x51
  68. #define PAGEUP       0x49
  69. #define ENDLINE      0x4f
  70. #define HOMELINE     0x47
  71. #define INSERT       0x52
  72. #define DELETE       0x53
  73. #define BACKSPACE    0x08
  74. #define ENTER        0x0d
  75. #define CR           0x1d
  76. #define ESC          0x1b
  77. #define F1           0x3b
  78. #define F2           0x3c
  79. #define F3           0x3d
  80. #define F4           0x3e
  81. #define F5           0x3f
  82. #define F6           0x40
  83. #define F7           0x41
  84. #define F8           0x42
  85. #define F9           0x43
  86. #define F10          0x44
  87. #define F11          0x85     /* ONLY ON EXTENDED AT 102 KEYBOARD */
  88. #define F12          0x86     /* ONLY ON EXTENDED AT 102 KEYBOARD */
  89.  
  90. /* Cursor Size */
  91.  
  92. #define NOCURS       0
  93. #define SMALL        1
  94. #define BIG          2
  95. #define NORM         3
  96.  
  97. #define ScreenAdr(seg,ofs) ((void far*) \
  98.                            ((( unsigned long) (seg) << 16) \
  99.                            | (unsigned) (ofs)))
  100.  
  101.  
  102. #define SetAdr(seg,ofs) ((void far*) \
  103.                         ((( unsigned long) (seg) << 16) \
  104.                         | (unsigned) (ofs)))
  105.  
  106. /*
  107.     Assembler Code für RETF aus Mouse Interrupt
  108.  
  109. _asm 
  110. {
  111.   mov sp,bp
  112.   pop es
  113.   pop ds 
  114.   popa 
  115.   retf
  116. }
  117. */
  118.  
  119. typedef unsigned char   Byte;
  120. typedef unsigned int    Word;
  121.  
  122. /* Screen Routines Variablen Definition */
  123.  
  124. char far* Screen;
  125.  
  126. /*  Mouse Information Structure */
  127.  
  128. struct ms_info_block
  129. {
  130.   int x,y;
  131.   Byte Button_1;
  132.   Byte Button_2;
  133.   Byte Button_3;
  134.   char text;
  135.   Byte mousetyp;
  136.   int major;
  137.   int minor;
  138.   int port;
  139.   int intr;
  140. };
  141.  
  142. int OpenWindow();                  /* Open Virtual Screen */ 
  143. int CloseWindow();                 /* Close Virtual Screen */
  144. void SetWindow();                  /* Set a virtual Screen */
  145. void VWrite_();                    /* Write_ in virtual Screen */
  146. void VWrite_ln();                  /* Write_ in virtual Screen */
  147. void Vgotoxy();                    /* Set Cursor in virtual Screen */
  148. void VClrScr();                    /* Clear Virtual Screen */
  149. char VReadin();                    /* Read + Echo Char from Virtual Screen */
  150. char VReadKey();                   /* Read Char from Virtual Screen */
  151. int keypress();                    /* Returns FALSE if an key pressed */
  152. Byte in_key_buf();                 /* Put char in keyboard buffer */ 
  153. void Err25();                      /* Print Error Message on Screen */
  154. void ErrMess();                    /* Open Message Window */
  155. int Printing();                    /* Prints on Parallel Printer */
  156. int Easy_Printing();               /* Prints on Parallel Printer */
  157. int CheckDrive();                  /* Check for valid drive */
  158. char Date_[9];                     /* Field for Date TT.MM.JJ */
  159. char Time_[6];                     /* Field for Time SS:MM */
  160. void numlout();                    /* Switch LED and Numlock-Key off */
  161. void numlon();                     /* Switch LED and Numlock-Key on */
  162. signed int In_Box();               /* Write Text into a Box */
  163. int read_ky();                     /* Allows specified Input */
  164. void SetBk();                      /* Change Background Screen */
  165. void SetBkXY();                    /* Change Background from-to Screen */
  166. void SetFr();                      /* Change Foreground Screen */
  167. void SetFrXY();                    /* Change Foreground from-to Screen */
  168. void TestVideo();                  /* Value MaxX_Text and MaxY_Text */
  169. signed int Top_Pulldown();         /* Init Pulldown-Menu */
  170. signed int Text_Pulldown();        /* Open Pulldown */
  171. int pulldown();                    /* Create Pulldown Menu */
  172. int Init_Printer();                /* Init Printer and set Online */
  173. void Reboot();                     /* Reboot with RAM-Refresh */
  174. char get_char();                   /* Get Character from XY Position */
  175. void ebc_to_asc();               /* Convert EBCDIC to ASCII */
  176. void asc_to_ebc();                 /* Convert ASCII to EBCDIC */
  177.  
  178. /* Mouse Functions */
  179.  
  180. int ms_reset();                    /* Reset Mouse */
  181. void ms_cursor();                  /* Show/Hide Mouse Cursor */
  182. void ms_X_from_to();               /* Set X - Range Mouse */
  183. void ms_Y_from_to();               /* Set Y - Range Mouse */
  184. void ms_inform();                  /* Status Mouse */
  185. void ms_position();                /* Set Mouse Position */
  186. void ms_intr();                    /* Set Mouse Interrupt Handle */
  187. char ms_beyond();                  /* Get Character on Mouse Position */
  188. void ms_def_cur();                 /* Define Mouse Cursor */
  189. Byte ms_init();                    /* Init Mouse */
  190. void far *interrupt ms_null();     /* O N L Y  update Mouse Info Block */
  191.  
  192. /* Internal Near-Pascal functions */
  193.  
  194. void gotoxy();
  195. void ClrScr();
  196. int WhereX();
  197. int WhereY();
  198. char ReadKey();
  199. char Readin();
  200. void Write_();
  201. void Write_ln();
  202. void SetBkGr();
  203. void SetColLine();
  204. void InitScreen();
  205. void Cursor();
  206. char *Get_Date();                       /* TT.MM.JJ */
  207. char *Get_Time();                       /* SS:MM */
  208. void delay();
  209. int JN();
  210. void GoOn();
  211. void Sound();
  212.  
  213. /* Errors during VSCREEN */
  214.  
  215. #define WINFUNC_OK 0
  216. #define WINSIZE_1  1
  217. #define WINSIZE_2  2
  218. #define WINDEF_1   3
  219. #define WINALLOC   4
  220. #define WINMEMO    5
  221. #define WINCLOSE   6
  222. #define WINNOLAST  7
  223.  
  224. #define ABORT     -1
  225.  
  226. /* Line Definition */
  227.  
  228. #define CUL_EASY      218       /* ┌ */
  229. #define CUR_EASY      191       /* ┐ */
  230. #define CDL_EASY      192       /* └ */
  231. #define CDR_EASY      217       /* ┘ */
  232. #define CST_EASY      196       /* ─ */
  233. #define CDN_EASY      179       /* │ */
  234. #define CUL_DOUBLE    201       /* ╔ */
  235. #define CUR_DOUBLE    187       /* ╗ */
  236. #define CDL_DOUBLE    200       /* ╚ */
  237. #define CDR_DOUBLE    188       /* ╝ */
  238. #define CST_DOUBLE    205       /* ═ */
  239. #define CDN_DOUBLE    186       /* ║ */
  240. #define CUPL_BLOCK    220       /* ▄ */
  241. #define CDNL_BLOCK    223       /* ▀ */ 
  242. #define CLD_BLOCK     221       /* ▌ */
  243. #define CRD_BLOCK     222       /* ▐ */
  244.  
  245. #define BOX_EASY CUL_EASY,CUR_EASY,CDL_EASY,CDR_EASY,CST_EASY,CDN_EASY
  246. #define BOX_DOUBLE CUL_DOUBLE,CUR_DOUBLE,CDL_DOUBLE,CDR_DOUBLE,CST_DOUBLE,CDN_DOUBLE
  247. #define BOX_BLOCK CUPL_BLOCK,CDNL_BLOCK,CLD_BLOCK,CRD_BLOCK,NULL,NULL
  248.  
  249. #define EASY    1
  250. #define DOUBLE  2
  251. #define BLOCK   3
  252.  
  253. /*
  254.  
  255.    Box - Examples  
  256.  
  257.    ┌─┐       ╔═╗         ▄▄▄
  258.    │ │ Easy  ║ ║ Double  ▌ ▐ Block
  259.    └─┘       ╚═╝         ▀▀▀
  260. */
  261.